package model

// 星币
type BCoin uint32

// RealPrize 实物奖品
type RealPrizeProduct struct {
	ProductID     int64                  `json:"product_id"`
	ProductName   string                 `json:"product_name"`
	ProductPics   []string               `json:"product_pics"`
	PriceMin      int32                  `json:"price_min"`
	PriceMax      int32                  `json:"price_max"`
	Quantity      int32                  `json:"quantity"` // 可兑换数量
	AttributeDefs []*ProductAttributeDef `json:"attribute_defs"`
	SkuPtrs       []*RealPrizeSku        `json:"skus"`
}

// RealPrize 实物奖品SKU
type RealPrizeSku struct {
	ProductID int64 `json:"product_id"`
	// ProductName         string   `json:"product_name"`
	ProductSpecID int64 `json:"product_spec_id"`
	// ProductSpecKey string `json:"product_spec_key"`
	// ProductSpecName     string   `json:"product_spec_name"`
	// ProductWithSpecName string   `json:"product_with_spec_name"`
	StorageKey string `json:"storage_key"`
	// Quantity   int32  `json:"quantity"` 中奖时不与sku发生关系,只有兑奖时才与sku交互
	Price   int32  `json:"price"`
	SkuName string `json:"sku_name"`
}

// AwardInfo 奖励信息标准结构
type AwardInfo struct {
	Coins         BCoin               `json:"coins,omitempty"`       // 星币数
	RealPrizePtrs []*RealPrizeProduct `json:"real_prizes,omitempty"` // 奖品
	Prize         uint32              `json:"prize,omitempty"`       // 几等奖(抽奖)
}

// ActivityUserAwardExtInfo
type ActivityUserAwardExtInfo struct {
	BrandName      string        `json:"brand_name"`
	BrandTel       string        `json:"brand_tel"`
	ActivityName   string        `json:"activity_name"`
	ActivityType   string        `json:"activity_type"`
	ActivityTel    string        `json:"activity_tel,omitempty"`
	WinnerNickName string        `json:"winner_nick_name,omitempty"`
	WinnerPic      string        `json:"winner_pic,omitempty"`
	WinnerTel      string        `json:"winner_tel,omitempty"`
	AwardType      string        `json:"award_type"` // 奖品类型
	AwardInfo      AwardInfo     `json:"award"`      // 奖品信息
	WarehouseID    int64         `json:"warehouse_id,omitempty"`
	WarehouseInfo  WarehouseInfo `json:"warehouse_info,omitempty"`
	DeliveryModes  []string      `json:"deliveryModes,omitempty"`
	ShippingFee    int32         `json:"shipping_fee,omitempty"`
}

type RealPrizeProductSearchPath struct {
	ProductID int64 `json:"product_id"`
}

type AwardInfoSearchPath struct {
	RealPrizeContainerPtrs []*RealPrizeProductSearchPath `json:"real_prizes,omitempty"`
}
type ActivityUserAwardExtInfoSearchPath struct {
	SearchPathPtr *AwardInfoSearchPath `json:"award"`
}
